package 代码随想2._6栈与队列;

/**
 * @author XXX
 * @date 2024-01-17 16:48
 */

import java.util.LinkedList;
import java.util.Queue;

/**
 * https://leetcode.cn/problems/implement-stack-using-queues/description/
 */
public class _2用队列实现栈 {
    class MyStack {
        Queue<Integer> q1;
        Queue<Integer> q2;

        public MyStack() {
            q1 = new LinkedList<>();
            q2 = new LinkedList<>();
        }

        public void push(int x) {
            q2.offer(x);
            while (!q1.isEmpty())
                q2.offer(q1.poll());
            Queue<Integer> tmp ;
            tmp = q1;
            q1 = q2;
            q2 = tmp;
        }

        public int pop() {
            return q1.poll();
        }

        public int top() {
            return q1.peek();
        }

        public boolean empty() {
            return q1.isEmpty();
        }
    }
}
